From: Krinkle Date: Sat, 18 Jun 2011 17:44:07 +0000 (+0000) Subject: Test suite for mw.Title (Follow-up r90331). Right now it matches the test suite in... X-Git-Tag: 1.31.0-rc.0~29439 X-Git-Url: http://git.cyclocoop.org/%22.%24info%5B?a=commitdiff_plain;h=2fd09013b651990230978b1ebe34b05ff81eda95;p=lhc%2Fweb%2Fwiklou.git Test suite for mw.Title (Follow-up r90331). Right now it matches the test suite in UploadWizard exactly (converted from jasmin to QUnit) --- diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.Title.js b/tests/qunit/suites/resources/mediawiki/mediawiki.Title.js new file mode 100644 index 0000000000..33a1eb1d85 --- /dev/null +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.Title.js @@ -0,0 +1,136 @@ +module( 'mediawiki.Title.js' ); + +// mw.Title relies on these three config vars +// Restore them after each test run +var _titleConfig = function() { + + mw.config.set({ + "wgFormattedNamespaces": { + "-2": "Media", + "-1": "Special", + "0": "", + "1": "Talk", + "2": "User", + "3": "User talk", + "4": "Wikipedia", + "5": "Wikipedia talk", + "6": "File", + "7": "File talk", + "8": "MediaWiki", + "9": "MediaWiki talk", + "10": "Template", + "11": "Template talk", + "12": "Help", + "13": "Help talk", + "14": "Category", + "15": "Category talk", + /* testing custom / localized */ + "100": "Penguins" + }, + "wgNamespaceIds": { + "media": -2, + "special": -1, + "": 0, + "talk": 1, + "user": 2, + "user_talk": 3, + "wikipedia": 4, + "wikipedia_talk": 5, + "file": 6, + "file_talk": 7, + "mediawiki": 8, + "mediawiki_talk": 9, + "template": 10, + "template_talk": 11, + "help": 12, + "help_talk": 13, + "category": 14, + "category_talk": 15, + "image": 6, + "image_talk": 7, + "project": 4, + "project_talk": 5, + /* testing custom / alias */ + "penguins": 100, + "antarctic_waterfowl": 100 + }, + "wgCaseSensitiveNamespaces": [] + }); +}; + +test( '-- Initial check', function() { + expect(1); + ok( mw.Title, 'mw.Title defined' ); +}); + +test( 'Filename', function() { + expect(4); + _titleConfig(); + + var title = new mw.Title( 'File:foo_bar.JPG' ); + + equal( title.getMain(), 'Foo_bar.jpg' ); + equal( title.getMainText(), 'Foo bar.jpg' ); + equal( title.getNameText(), 'Foo bar' ); + equal( title.toString(), 'File:Foo_bar.jpg' ); +}); + +test( 'Transform between Text to Db', function() { + expect(6); + _titleConfig(); + + var title = new mw.Title( 'File:foo_bar.JPG' ); + title.setName( 'quux pif' ); + + equal( title.getMain(), 'Quux_pif.jpg' ); + equal( title.getMainText(), 'Quux pif.jpg' ); + equal( title.getNameText(), 'Quux pif' ); + equal( title.toString(), 'File:Quux_pif.jpg' ); + + title.setName( 'glarg_foo_glang' ); + + equal( title.toString(), 'File:Glarg_foo_glang.jpg' ); + equal( title.getMainText(), 'Glarg foo glang.jpg' ); +}); + +test( 'Initiate from name and set namespace', function() { + expect(1); + _titleConfig(); + + var title = new mw.Title( 'catalonian_penguins.PNG' ); + title.setNamespace( 'file' ); + equal( title.toString(), 'File:Catalonian_penguins.png' ); +}); + +test( 'Namespace detection and conversion', function() { + expect(7); + _titleConfig(); + + var title; + + title = new mw.Title( 'something.PDF' ); + title.setNamespace( 'file' ); + equal( title.toString(), 'File:Something.pdf' ); + + title = new mw.Title( 'NeilK' ); + title.setNamespace( 'user_talk' ); + equal( title.toString(), 'User_talk:NeilK' ); + equal( title.toText(), 'User talk:NeilK' ); + + title = new mw.Title( 'Frobisher' ); + title.setNamespaceById( 100 ); + equal( title.toString(), 'Penguins:Frobisher' ); + + title = new mw.Title( 'flightless_yet_cute.jpg' ); + title.setNamespace( 'antarctic_waterfowl' ); + equal( title.toString(), 'Penguins:Flightless_yet_cute.jpg' ); + + title = new mw.Title( 'flightless_yet_cute.jpg' ); + title.setNamespace( 'Penguins' ); + equal( title.toString(), 'Penguins:Flightless_yet_cute.jpg' ); + + title = new mw.Title( 'flightless_yet_cute.jpg' ); + raises( function() { + title.setNamespace( 'Entirely Unknown' ); + }); +});